package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltPerformanceMinuteReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltPerformanceMinuteRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltPerformanceMinute;
import java.util.Objects;

/**
 * BeltPerformanceMinute DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public class BeltPerformanceMinuteAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltPerformanceMinute dto2entity(BeltPerformanceMinuteReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltPerformanceMinute entity = new BeltPerformanceMinute();
    entity.setBeltId(dto.getBeltId());
    entity.setRouteId(dto.getRouteId());
    entity.setTaskId(dto.getTaskId());
    entity.setStartTime(dto.getStartTime());
    entity.setEndTime(dto.getEndTime());
    entity.setAvgLoadRate(dto.getAvgLoadRate());
    entity.setAvgPower(dto.getAvgPower());
    entity.setLoadStatus(dto.getLoadStatus());
    entity.setPowerConsumption(dto.getPowerConsumption());
    entity.setRuntime(dto.getRuntime());
    entity.setPowerType(dto.getPowerType());
    entity.setOperationEfficiency(dto.getOperationEfficiency());
    entity.setAvgResistance(dto.getAvgResistance());
    entity.setBelongDate(dto.getBelongDate());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltPerformanceMinute dto2entity(BeltPerformanceMinuteReqDTO dto, BeltPerformanceMinute entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getBeltId())) {
      entity.setBeltId(dto.getBeltId());
    }
    if(Objects.nonNull(dto.getRouteId())) {
      entity.setRouteId(dto.getRouteId());
    }
    if(Objects.nonNull(dto.getTaskId())) {
      entity.setTaskId(dto.getTaskId());
    }
    if(Objects.nonNull(dto.getStartTime())) {
      entity.setStartTime(dto.getStartTime());
    }
    if(Objects.nonNull(dto.getEndTime())) {
      entity.setEndTime(dto.getEndTime());
    }
    if(Objects.nonNull(dto.getAvgLoadRate())) {
      entity.setAvgLoadRate(dto.getAvgLoadRate());
    }
    if(Objects.nonNull(dto.getAvgPower())) {
      entity.setAvgPower(dto.getAvgPower());
    }
    if(Objects.nonNull(dto.getLoadStatus())) {
      entity.setLoadStatus(dto.getLoadStatus());
    }
    if(Objects.nonNull(dto.getPowerConsumption())) {
      entity.setPowerConsumption(dto.getPowerConsumption());
    }
    if(Objects.nonNull(dto.getRuntime())) {
      entity.setRuntime(dto.getRuntime());
    }
    if(Objects.nonNull(dto.getPowerType())) {
      entity.setPowerType(dto.getPowerType());
    }
    if(Objects.nonNull(dto.getOperationEfficiency())) {
      entity.setOperationEfficiency(dto.getOperationEfficiency());
    }
    if(Objects.nonNull(dto.getAvgResistance())) {
      entity.setAvgResistance(dto.getAvgResistance());
    }
    if(Objects.nonNull(dto.getBelongDate())) {
      entity.setBelongDate(dto.getBelongDate());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltPerformanceMinuteRespVO entity2dto(BeltPerformanceMinute entity) {
    if (entity == null) {
      return null;
    }
    BeltPerformanceMinuteRespVO dto = new BeltPerformanceMinuteRespVO();
    dto.setId(entity.getId());
    dto.setBeltId(entity.getBeltId());
    dto.setRouteId(entity.getRouteId());
    dto.setTaskId(entity.getTaskId());
    dto.setStartTime(entity.getStartTime());
    dto.setEndTime(entity.getEndTime());
    dto.setAvgLoadRate(entity.getAvgLoadRate());
    dto.setAvgPower(entity.getAvgPower());
    dto.setLoadStatus(entity.getLoadStatus());
    dto.setPowerConsumption(entity.getPowerConsumption());
    dto.setRuntime(entity.getRuntime());
    dto.setPowerType(entity.getPowerType());
    dto.setOperationEfficiency(entity.getOperationEfficiency());
    dto.setAvgResistance(entity.getAvgResistance());
    dto.setBelongDate(entity.getBelongDate());
    dto.setCreateUser(entity.getCreateUser());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyUser(entity.getModifyUser());
    dto.setModifyTime(entity.getModifyTime());
    return dto;
  }

}
